import axios from 'axios'
import { getToken,removeToken } from './cookie';
import router from '@/router';

axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";

// 配置请求的根路径
//127.0.0.1:19090
const service = axios.create({
    baseURL:"/dev-api",
    timeout:5000,
})

// 请求拦截器
service.interceptors.request.use(
    (config)=>{
       if(getToken()){
           config.headers['Authorization']="Bearer"+getToken();
       }
       return config;
    },
    (erro) => {
        console.log(erro);
        Promise.reject(erro);
    }
);

// 响应拦截器
service.interceptors.response.use(
    (res)=>{
       //未设置状态码则默认成功状态
       const code=res.data.code;
       const msg=res.data.msg;
       if(code===3001){
        ElMessage.error(msg);
        removeToken();
        router.push("/oj/login");
        return Promise.reject(new Error(msg));
       } else if(code!==1000){
           ElMessage.error(msg);
           return Promise.reject(new Error(msg));
       } else {
           return Promise.resolve(res.data);
       }
    },
    (erro) => {
        return Promise.reject(erro); 
    }
);

export default service